<?php
/**
 * 
 * Este controlador se encargar de gestionar el modulo de Entrega.
 * @author Rosanna Paberli Jimenez Rosario
 *
 */
class GestionEntrega extends  Controller
{

	public function __construct()
	{
		parent::Controller();
		$this->load->model(array('encompany','entregadetalles','mservicios','enubicaciondoc','contactoentregam','pendienteentrega'));
		$this->load->library(array('chgraficos','chcalendario'));
		
	}

	public function index()
	{
		
		$pendiente = $this->encompany->numRegistro();
		
		$this->load->view('main', array('content_page' => 'listgestioncompaviejas',
		                                'menutop'      => '9',
		                                'numPediente'  =>  $pendiente));
	}
	
	public function data($var = false)
	{
		
		$page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'Id_Referencia'; // Columna para el order by
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'ASC'; // Orden (asc|desc)
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 30;
		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;
  
		    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		    header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		    header("Cache-Control: no-cache, must-revalidate" );
		    header("Pragma: no-cache" );
		    
		    $diasEtapa = date('Y-m-d',time()-45*24*3600); 
            
            $where = array('Fecha_Inicio_Entrega >=' => $diasEtapa);
		    
	        $records = $this->encompany->loadCompany($start, $limit, $sortname, $sortorder,0,$where);
		
		    $totalRecords = count($records);
		

		$totalPages = ceil($totalRecords/$limit);
		  if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		     'page'		=> $page,
		     'total'	=> $totalPages,
		     'records'	=> $totalRecords,
		     'rows'		=> array()
		);

		if($records != false) {
			foreach($records as $k) {
				
				$dataActual = date('Y-m-d H-i-s'); 
				$por = 100;
				
				$ultimaSegui = $this->entregadetalles->lastLoadDataDetalles($k->getIdReferencia());

				if ($ultimaSegui !== false) { 
					
					  $diasSeguimientos = $this->encompany->CalcularDias($ultimaSegui->getFechaSystem(),$ultimaSegui->getFechaProximaLlamada());
				
				      $diasSeguimientosF = $this->encompany->CalcularDias($ultimaSegui->getFechaSystem(),$dataActual);
				
				      if ($diasSeguimientos == 0){
					
					     $por = 100;
				    }else{
						  $por = 100 / $diasSeguimientos;
				          $por = $por * $diasSeguimientosF;
				    }
					
				}	
			
				if ($por < 50) {
						$imagens="<img src='http://code.company24h.com/public/images/1.png'/>";
				}else if($por < 80){
					    $imagens="<img src='http://code.company24h.com/public/images/2.png'/>";	
				}else{
					    $imagens="<img src='http://code.company24h.com/public/images/3.png'/>";
				}
				
		        $producto = $this->mservicios->LoadServicioById($k->getIdTipoProducto());
				
		        $ubicacion = $this->enubicaciondoc->loadUbicacionDocId($k->getIdUbicacion());
		        
		        $contacto = $this->contactoentregam->loadConctatoId($k->getIdReferencia());
		        
		 
		        $dias  = $this->encompany->CalcularDias($k->getFechaInicioEntrega(),$dataActual);
		        
		        if ($dias < 10) {
		        	$imagen="<img src='http://code.company24h.com/public/images/1.png'/>";
		        }else if($dias < 15 ){
		        	 $imagen="<img src='http://code.company24h.com/public/images/2.png'/>";	
		        }else{
		        	$imagen="<img src='http://code.company24h.com/public/images/3.png'/>";
		        }
				
		        $balance = $k->getMoneda().' '.$k->getBalancePendiente();
		        
				$arr = $json_output['rows'][] = array(
				               'IdReferencia'           =>$k->getIdReferencia(),
				               'Producto'               =>$producto->getNombreServicio(),
							   'cProductos'				=>$k->getClasificacionP(),
				               'Referencia'             =>$k->getReferencia(),
				               'Dias'                   =>intval($dias),
				               'Ubicacion'              =>$ubicacion->getDescUbicacionDoc(),
				               'Contacto'               =>$contacto->getContacto(),
				               'Telefono1'              =>$contacto->getTelefono1(),
				               'Balance'                =>$balance,
				               'Email'                  =>$contacto->getEmailCia(),
				               'Gen'                    =>$imagen,
				               'I-Contacto'             =>$imagens
				              
				   );
		
		   }
		
	}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;
		
		
  }
	
	
	public function getDataCompanias()
	{
		
		$page = 1; // Pagina Actual o 1 por default
		$sortname = 'Fecha_Inicio_Entrega'; // Columna para el order by
		$sortorder = 'ASC'; // Orden (asc|desc)
		$limit = 5;
		$start = ($limit * $page) - $limit;
		if($start < 0) $start = 0;
  
		    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		    header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		    header("Cache-Control: no-cache, must-revalidate" );
		    header("Pragma: no-cache" );
		    
            $diasEtapa = date('Y-m-d',time()-(45*24*3600)); 
            $diasEtapa .= ' 00:00:00';
            
            $where = array('Fecha_Inicio_Entrega >= ' => $diasEtapa);
		    
	        $records = $this->encompany->loadCompany($start, $limit, $sortname, $sortorder,0,$where);
	      
		    $totalRecords = count($records);
		
    
		$totalPages = ceil($totalRecords/$limit);
		  if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		     'page'		=> $page,
		     'total'	=> $totalPages,
		     'records'	=> $totalRecords,
		     'rows'		=> array()
		);

		if($records != false) {
			foreach($records as $k) {
				
				$dataActual = date('Y-m-d H-i-s'); 
				$por = 100;
				
				$ultimaSegui = $this->entregadetalles->lastLoadDataDetalles($k->getIdReferencia());
				
				if ($ultimaSegui !== false) { 
					
					  $diasSeguimientos = $this->encompany->CalcularDias($ultimaSegui->getFechaSystem(),$ultimaSegui->getFechaProximaLlamada());
				
				      $diasSeguimientosF = $this->encompany->CalcularDias($ultimaSegui->getFechaSystem(),$dataActual);
				
				      if ($diasSeguimientos == 0){
					
					     $por = 100;
				    }else{
						  $por = 100 / $diasSeguimientos;
				          $por = $por * $diasSeguimientosF;
				    }
					
				}	
			
				if ($por < 50) {
						$imagens="<img src='http://code.company24h.com/public/images/1.png'/>";
				}else if($por < 80){
					    $imagens="<img src='http://code.company24h.com/public/images/2.png'/>";	
				}else{
					    $imagens="<img src='http://code.company24h.com/public/images/3.png'/>";
				}
				
		        $producto = $this->mservicios->LoadServicioById($k->getIdTipoProducto());
				
		        $ubicacion = $this->enubicaciondoc->loadUbicacionDocId($k->getIdUbicacion());
		        
		        $contacto = $this->contactoentregam->loadConctatoId($k->getIdReferencia());
		        
		 
		        $dias  = $this->encompany->CalcularDias($k->getFechaInicioEntrega(),$dataActual);
		        
		        if ($dias < 10) {
		        	$imagen="<img src='http://code.company24h.com/public/images/1.png'/>";
		        }else if($dias < 15 ){
		        	 $imagen="<img src='http://code.company24h.com/public/images/2.png'/>";	
		        }else{
		        	$imagen="<img src='http://code.company24h.com/public/images/3.png'/>";
		        }
				
		        $balance = $k->getMoneda().' '.$k->getBalancePendiente();
		        
				$arr = $json_output['rows'][] = array(
				               'IdReferencia'           =>$k->getIdReferencia(),
				               'Producto'               =>$producto->getNombreServicio(),
							   'cProductos'				=>$k->getClasificacionP(),
				               'Referencia'             =>$k->getReferencia(),
				               'Dias'                   =>intval($dias),
				               'Ubicacion'              =>$ubicacion->getDescUbicacionDoc(),
				               'Contacto'               =>$contacto->getContacto(),
				               'Telefono1'              =>$contacto->getTelefono1(),
				               'Balance'                =>$balance,
				               'Email'                  =>$contacto->getEmailCia(),
				               'Gen'                    =>$imagen,
				               'I-Contacto'             =>$imagens
				              
				   );
				
		  }
		
	}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;
		
			
	}
	
	
	public function generalExcel()
	{
		
		
		$body = "";
		
		$idCompania = "";
		$productos = "";
		$referencia = "";
		$diass = "";
		$contactos = "";
		$telefono = "";
		$balances = "";
		$email = "";
		$i_Gen = "";
		$i_contactos = "";
		
		
		$page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'Id_Referencia'; // Columna para el order by
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'ASC'; // Orden (asc|desc)
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 30;
		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;
		
  
		    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		    header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		    header("Cache-Control: no-cache, must-revalidate" );
		    header("Pragma: no-cache" );
		    
		    $diasEtapa = date('Y-m-d',time()-45*24*3600); 
            
            $where = array('Fecha_Inicio_Entrega >=' => $diasEtapa);
		    
	        $records = $this->encompany->loadCompany($start, $limit, $sortname, $sortorder,0,$where);

	     foreach($records as $k) {
				
				$dataActual = date('Y-m-d H-i-s'); 
				$por = 100;
				
				
				 
				$ultimaSegui = $this->entregadetalles->lastLoadDataDetalles($k->getIdReferencia());
				
				if ($ultimaSegui !== false) { 
					
					  $diasSeguimientos = $this->encompany->CalcularDias($ultimaSegui->getFechaSystem(),$ultimaSegui->getFechaProximaLlamada());
				
				      $diasSeguimientosF = $this->encompany->CalcularDias($ultimaSegui->getFechaSystem(),$dataActual);
				
				      if ($diasSeguimientos == 0){
					
					     $por = 100;
				    }else{
						  $por = 100 / $diasSeguimientos;
				          $por = $por * $diasSeguimientosF;
				    }
					
				}	
			
				if ($por < 50) {
						$imagens="1";
				}else if($por < 80){
					    $imagens="2";	
				}else{
					    $imagens="3";
				}
				
				$idCompania .= $k->getIdReferencia()."<br>";
		        $producto    = $this->mservicios->LoadServicioById($k->getIdTipoProducto());
				$productos  .= $producto->getNombreServicio()."<br>";
				$referencia .= $k->getReferencia()."<br>";
				
				
		        $ubicacion = $this->enubicaciondoc->loadUbicacionDocId($k->getIdUbicacion());
		        
		        $contacto = $this->contactoentregam->loadConctatoId($k->getIdReferencia());
		        
		        $contactos .= $contacto->getContacto()."<br>";
		        $telefono  .= $contacto->getTelefono1()."<br>";
		        $email     .= $contacto->getEmailCia()."<br>";
		        
		        $dias  = $this->encompany->CalcularDias($k->getFechaInicioEntrega(),$dataActual);
		        
		        $diass .= $dias."<br>";
		        
		        if ($dias < 10) {
		        	$imagen="1";
		        }else if($dias < 15 ){
		        	 $imagen="2";	
		        }else{
		        	$imagen="3";
		        }
			
		        $i_Gen .= $imagen."<br>";
		        $i_contactos .= $imagens."<br>";
		        
		        $balance = $k->getMoneda().' '.$k->getBalancePendiente();
		        $balances .= $balance."<br>";

		}
	    
		$body = "<table>
		
					<tr>
						<th>Id Compania</th>
						<th>Producto</th>
						<th>Referencia</th>
						<th>Numero Dias</th>
						<th>Contacto</th>
						<th>Telefono</th>
						<th>Balance Fiscal</th>
						<th>E-Mail</th>
						<th>I-Gen</th>
						<th>I-Contactos</th>
					</tr>
					
					<tr>
						<td>$idCompania</td>
						<td>$productos</td>
						<td>$referencia</td>
						<td>$diass</td>
						<td>$contactos</td>
						<td>$telefono</td>
						<td>$balances</td>
						<td>$email</td>
						<td>$i_Gen</td>
						<td>$i_contactos</td>
					</tr>
		</table>";
		
		
		$filename = "reportes-cia-45.xls";
		
	    $open = fopen($filename,"a") or die("Hubo un error");
        fputs($open,$body);
        fclose($open);
       
		header('Content-type: application/vnd.ms-excel');
		header("Content-Disposition: attachment; filename=reportes-cia-45.xls");
		header("Pragma: no-cache");
		header("Expires: 0");
		
		
		echo $body;
		
	}
	

}
 